What's new on CPAN - April 2019
Welcome to “What’s new on CPAN”, a curated look at last month’s new CPAN uploads for your reading and programming pleasure. Enjoy!
APIs & Apps
- App::optex::textconv compares .docx files by their text contents
- Get a mojo-based Redfish client with Mojo::Redfish::Client
- Checkpoint Management (change control) API version 1.x client - Net::Checkpoint::Management::v1
- OpenStack::MetaAPI provides a Perl5 OpenStack API abstraction on top of OpenStack::Client
- Paubox_Email_SDK provides an interface to the Paubox Transactional Email API
Data
- Algorithm::MinPerfHashTwoLevel construct a “two level” minimal perfect hash
- Get a fast Concise Binary Object Representation parser with a liberal license - CBOR::Free
- DBIx::Class::Events stores events for your DBIC results
- JSON::Pointer meets PadWalker in Devel::Optic
- File::TVShow::Organize moves TVShow Files into their matching Show Folder on a media server
- Geo::Index creates in-memory indices with fast searching capabilities
Development & Version Control
- Future::IO provides Future-returning IO methods
- IPC::ReadpipeX bypasses the shell with the list form of readpipe/qx/backticks for capturing output
- PerlIO::normalize provides a PerlIO layer to normalize unicode strings on input and output
- Get a web interface for viewing and inspecting yath test logs using Test2::Harness::UI
Web
- AnyEvent::HTTPD::Router adds routing to AnyEvent:HTTPD
- Use Furl, but wired to a PSGI app with Furl::PSGI
- Emit stats in your Mojo app with Mojolicious::Plugin::Statsd
- Mojolicious::Static::Role::Compressed serves pre-compressed versions of static assets
- Starwoman is a fork “because Starman does the same thing over and over again expecting different results” :-)
- Use the AWS s3 URI scheme with URI objects using URI::s3
- Yancy::Backend::Static can build a Yancy site from static Markdown files
Tags
David Farrell
David is a professional programmer who regularly tweets and blogs about code and the art of programming.
Browse their articles
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub